翻訳と辞書
Words near each other
・ Return to Yggdrasill
・ Return to You
・ Return to Yugoslavia
・ Return to Zero
・ Return to Zero (film)
・ Return to Zero (RTZ album)
・ Return to Zero (Spiritual Beggars album)
・ Return to Zion
・ Return to Zork
・ Return Torrey
・ Return type
・ Return value optimization
・ Return with Honor
・ Return yards
・ Return-oriented programming
Return-to-libc attack
・ Return-to-zero
・ Returnal
・ Returned and Services League of Australia
・ Returned to unit
・ Returned to Your Mind
・ Returned Treasures Program
・ Returnees from Albania
・ Returner
・ Returner (disambiguation)
・ Returner (liqueur)
・ Returner (Yami no Shūen)
・ Returners (album)
・ Returning
・ Returning (album)


Dictionary Lists
翻訳と辞書 辞書検索 [ 開発暫定版 ]
スポンサード リンク

Return-to-libc attack : ウィキペディア英語版
Return-to-libc attack

A “return-to-libc” attack is a computer security attack usually starting with a buffer overflow in which a subroutine return address on a call stack is replaced by an address of a subroutine that is already present in the process’ executable memory, bypassing the NX bit feature (if present) and ridding the attacker of the need to inject their own code.
On Unix and Unix-like operating systems the C standard library is commonly used to provide a standard runtime environment for programs written in the C programming language. Although the attacker could make the code return anywhere, libc is the most likely target, as it is almost always linked to the program, and it provides useful calls for an attacker (such as the system function used to execute shell commands.)
==Protection from return-to-libc attacks==
A non-executable stack can prevent some buffer overflow exploitation, however it cannot prevent a return-to-libc attack because in the return-to-libc attack only existing executable code is used. On the other hand these attacks can only call preexisting functions. Stack-smashing protection can prevent or obstruct exploitation as it may detect the corruption of the stack and possibly flush out the compromised segment.
"ASCII armoring" is a technique that can be used to obstruct this kind of attack. With ASCII armoring, all the system libraries (e.g. libc) addresses contain a NULL byte (0x00). This is commonly done by placing them in the first 0x01010100 bytes of memory (around 16 MB, dubbed the "ASCII armour region"), as every address up to this value contains at least one NULL byte. This makes it impossible to emplace code containing those addresses using string manipulation functions such as strcpy(). However, this technique does not work if the attacker does have a way to overflow NULL bytes into the stack. If the program is too large to fit in the first 16 MB, protection may be incomplete. This technique can also be overcome by a more advanced type of attack known as return-to-plt where, instead of returning to libc, the attacker uses the Procedure Linkage Table (PLT) functions loaded in the binary (e.g. system@plt, execve@plt, sprintf@plt, strcpy@plt, etc.).〔(【引用サイトリンク】 Linux exploit development part 4 - ASCII armor bypass + return-to-plt )
Address space layout randomization (ASLR) makes this type of attack extremely unlikely to succeed on 64-bit machines as the memory locations of functions are random. For 32-bit systems ASLR provides little benefit since there are only 16 bits available for randomization, and they can be defeated by brute force in a matter of minutes.

抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)
ウィキペディアで「Return-to-libc attack」の詳細全文を読む



スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース

Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.